Testing software systems such as Enterprise Resource Planning (ERP) systems can be an expensive and labor-intensive process. Such software systems, which are often involved in the bulk of many organizations' activity, may include many modules, which each under certain circumstances may need to be tested in order to validate that the software system is operating as expected. Many of the software modules are customizable, and can be made to perform according to an organization's specific needs by implementing configuration changes (e.g., changing values in configuration tables or creating user generated code). Making a configuration change may affect many transactions that may be executed on the software system. Thus, configuration changes are often risky and require regression testing to validate. In many cases, the cost and time involved in a full regression test may be too high.
Therefore, given the large number of software modules, business processes, and transactions that are utilized in business software systems, it is necessary to determine which tests are important to run in order to validate a configuration change. However, this task is often difficult. In particular, it may be far from trivial to determine which of the many transactions that may be performed on a software system are likely to be impacted by a certain configuration change. Often, due to unknown dependencies, configuration changes may have unintended and/or unexpected side effects on transactions performed on a software system, which a tester may not be aware of. Since tests are usually designed and run by each organization separately, on the organization's systems, this means that each organization must build up the necessary knowledge of such dependencies and possible side effects, and discover independently which transactions are likely to be impacted by certain configuration changes, and as such should be tested when validating the certain configuration changes. Gaining this knowledge may require much effort and experience; in the meantime, testing the software systems may be a less effective and prolonged process.